/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica;

import java.io.Serializable;
import java.util.ArrayList;

/**
 *
 * @author Cami
 */
public class Partida implements Serializable{
   
     //Atributos
    private String nombrePartida;
    private String nombreCorsario;
    private String nombrePirata;
    private Estado estado;
    private String ganador;
    private Puerto origen;
    private Puerto destino;
    private Barco corsario;
    private ArrayList <Lancha> lanchas;
    
      private boolean corsarioLogIn;
      private boolean pirataLogIn;

        
    //Constructor    
    public Partida(String nombPartida, String nombreC, String nombreP){
	nombrePartida = nombPartida;
	nombreCorsario = nombreC;
	nombrePirata = nombreP;
	estado = Estado.NUEVA;
        ganador="";
       //PUERTOS SE ASIGNAN AL INICIAR PARTIDA NO AL CREAR...
    }
    
    //Metodos GET
    public  String getNombrePartida() {
        return nombrePartida;
    }	
   public  String getNombreCorsario() {
        return nombreCorsario;
    }
   public  String getNombrePirata() {
        return nombrePirata;
    }
    public Estado getEstado() {
	return estado;
    }
    public String getGanador(){
        return ganador;
    }
    public Barco getCorsario(){
    return corsario;
    }
     //Metodos SET

    public void setNombrePirata(String nombrePi) {
	this.nombrePirata = nombrePi;
    }
    public void setNombrePartida(String nombreP) {
	this.nombrePartida = nombreP;
    }     
    public void setNombreCorsario(String nombreC) {
	this.nombreCorsario = nombreC;
    } 
    public void setGanador(String nombreGanador) {
	this.ganador = nombreGanador;
    }
    
    public void asignarCorsario (Barco corsario){
        this.corsario=corsario;
    }
    
    //Otros Metodos
    boolean esNueva() {
        return this.estado == Estado.NUEVA;
    }
    boolean estaIniciada() {
        return this.estado == Estado.INICIADA;
    }
    boolean estaEnJuego() {
        return this.estado == Estado.ENJUEGO;
    }
    boolean estaFinalizada() {
        return this.estado == Estado.FINALIZADA;
    }    

    public void iniciarPartida() {	
	this.estado = Estado.INICIADA;
    }
    
    public void unirsePartida() {	
	this.estado = Estado.ENJUEGO;
    }
    public void asignarOrigen (Puerto origen){
        this.origen=origen;
    }
    public void asignarDestino (Puerto destino){
        this.destino=destino;
    }
    
    public void finalizarPartida(String nombreGanador) {	
	this.estado = Estado.FINALIZADA;
        this.ganador = nombreGanador;
    }	

     public boolean insFrontPiratas(Lancha pirata){
        return lanchas.add(pirata);
    }
     
    public Lancha nesimaLancha(int pos) {
	return lanchas.get(pos-1);
	}

}
